#ifndef _VENTANA_H_
#define _VENTANA_H_
#pragma once

#include "Figura.h"
#include <list>
#include "SDL.h"
#include "SDL_ttf.h"
#include "Textura.h"
#include "Texto.h"

class Ventana
{
protected:
	SDL_Surface *fondoVentana;//no lo llama, debo sacar ....
	SDL_Surface *screen;
	Color* colorFondoVentana;
	std::string nombre;
	std::string texturaFondo;
	std::list<Textura*> listaTexturas;//por como esta implementado, no se usa
	std::list<Figura*> listaFiguras;
	std::list<Figura*> listaFigDinamicas;
	int alto;
	int ancho;
public:
	int iniciarSdl();
	virtual int graficar()=0; //metodo virtual puro
	Ventana();
	Ventana(std::string nombre);
	virtual ~Ventana(void);
	int getAlto();
	int getAncho();
	SDL_Surface* getScreen();
	SDL_Color getColorFondoVentana();
	void pintarPantalla();
	bool existeIdFigura(std::string idFigura);
	bool existeIdFigDinamicas(std::string idFigura);
	void addFigura(Figura *figura);
	void addFigDinamicas(Figura *figura);
	int sizeListaFiguras();
	int sizeListaTexturas();
	int sizeListaFigDinamicas();
	std::string getPathTextura(std::string id);
	std::list<Figura*>::iterator iteratorListaFiguras();
	std::list<Figura*>::iterator iteratorListaFigDinamicas();
	std::list<Textura*>::iterator iteratorListaTexturas();
};

#endif
